package com.controladores.controlvehicular;
import com.controladores.controlvehicular.R;
import com.controladores.controlvehicular.comunicacion.ComunicacionTCP;
import com.controladores.controlvehicular.controlador.SoundManager;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;

import com.controladores.controlvehicular.basededatos.GestorBaseDatos;

import android.media.AudioManager;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.Typeface;
import android.util.EventLogTags.Description;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class RegistroMulta extends Activity implements
                android.view.View.OnClickListener {
        protected TextView fuenteMulta;

        static final int fotografia = 0;
        Bitmap bmp;
        ImageView evidencia;
        Button cajaCargarCodigoMulta;
        Intent i;
        private static int TAKE_PICTURE = 1;
        private static final int REQUEST_CAMERA = 1;
        private static final int REQUEST_SELECT_PHOTO = 0;
        private String name = "";

        private String codigoMulta = "", descripcionMulta = "", NumCliente = "",
                        montoMulta = "";

        int idZonaEstacionamiento = 1, idSubCalle = 1;

        private EditText cajaCodigoMulta,
                        cajaNumCliente;
        private TextView cajaTipoMultas,cajaMontoMulta;
        CheckBox espacio1;
        private int dNunEspacio, rNunEspacio,disNunEspacio, idMultaCaducidad, ridMultaAusencia, disidMultaAusencia;
        private String idMultaM = "", IDServidor = "";
        private String dNombreControlador, dNomZona, dIdSubCalle, dPlaca, dColor,
                        dMarca, dHoraControl, dFecha, dMultaSistTarjeta;
        private String rNombreControlador, rNomZona, rIdSubCalle, rPlaca, rColor,
                        rMarca, rHoraControl, rFecha, rMultaSistTarjeta;
        private String disNombreControlador, disNomZona, disIdSubCalle, disPlaca, disColor,
        disMarca, disHoraControl, disFecha, disMultaSistDiscapacitado;
        private String razonMultaCaducidad, montoMultaCaducidad;
        private String registroTipoMulta, multaTipoMulta, tipoMultaTiempo;
        private int espacioTipoTiempo = 0;
        private TextView prueba;
        private int pickup, cNunEspacio;
        SoundManager snd;
        public static Activity mu;
        private String cUsuario, cNumZona, cIdSubcalle, cPlaca, cMarca, cColor,
                        cHoraControl, cFecha, cControlador;
        private CheckBox ausenciaTarjeta, MalUsoTarjeta;
        private long idMulta = 0;
        String codigo;
        protected Uri imageUri;
        private String photoPath="";
        private String estadoEnvio = "1";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_registro_multa);
                fuenteMulta = (TextView) findViewById(R.id.tMulta);
                Typeface tipofuenteMulta = Typeface.createFromAsset(getAssets(),
                                "RobotoCondensedRegular.ttf");
                fuenteMulta.setTypeface(tipofuenteMulta);
                //tomarEvidencia = (Button) findViewById(R.id.btnTomarFoto);
                //tomarEvidencia.setOnClickListener(this);
                cajaCodigoMulta = (EditText) findViewById(R.id.id_codigoMulta);
                cajaTipoMultas = (TextView) findViewById(R.id.edTiposMulas);
                cajaMontoMulta = (TextView) findViewById(R.id.edmonto);
                cajaNumCliente = (EditText) findViewById(R.id.edNombreP);
                // direcion archivo a almacenar

                cajaCargarCodigoMulta = (Button) findViewById(R.id.btnCargarCodigoMulta);
                cajaCargarCodigoMulta.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View view) {
                                Intent intent = new Intent(
                                                "com.google.zxing.client.android.SCAN");
                                intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
                                startActivityForResult(intent, 0);
                        }
                });
                // tomarEvidencia.setEnabled(true);
                // String x=cajaCodigoMulta.getText().toString();
                // if(x.compareTo("null")!=0){
                // tomarEvidencia.setEnabled(false);
                // }
                // por discapacitado
                try {
                        Bundle multaAusenciaTarjetaDiscapacitado = getIntent().getExtras();
                        disMultaSistDiscapacitado = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoMultaSistDiscapacitado");
                        disNombreControlador = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoNomControladorRecarga");
                        //disidMultaAusencia = multaAusenciaTarjetaDiscapacitado
                                //      .getInt("datoIdMultaAusenciaRecarga");
                        disNomZona = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoNombreZonaRecarga");
                        disNunEspacio = multaAusenciaTarjetaDiscapacitado
                                        .getInt("datoEspacioRegistroRecarga");
                        disIdSubCalle = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoIdSubCalleRecarga");
                        disPlaca = multaAusenciaTarjetaDiscapacitado.getString("datoPlacaRecarga");
                        disColor = multaAusenciaTarjetaDiscapacitado.getString("datoColorRecarga");
                        disMarca = multaAusenciaTarjetaDiscapacitado.getString("datoMarcaRecarga");
                        disHoraControl = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoHoraControlRecarga");
                        disFecha = multaAusenciaTarjetaDiscapacitado
                                        .getString("datoFechaControlRecarga");
                        System.out.println(disMultaSistDiscapacitado+disNombreControlador+disidMultaAusencia+disNomZona+disNunEspacio+disIdSubCalle+disPlaca+disColor+disMarca+disHoraControl+disFecha);
                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {// por cadicidad
                        Bundle datosTarjeta = getIntent().getExtras();
                        dMultaSistTarjeta = datosTarjeta.getString("datoMultaSistTarjeta");
                        dNombreControlador = datosTarjeta.getString("datoNomControlador");
                        idMultaCaducidad = datosTarjeta.getInt("datoIdMultaCaducidad");
                        dNomZona = datosTarjeta.getString("datoNombreZona");
                        dNunEspacio = datosTarjeta.getInt("datoEspacioRegistro");
                        dIdSubCalle = datosTarjeta.getString("datoIdSubCalle");
                        dPlaca = datosTarjeta.getString("datoPlaca");
                        dColor = datosTarjeta.getString("datoColor");
                        dMarca = datosTarjeta.getString("datoMarca");
                        dHoraControl = datosTarjeta.getString("datoHoraControl");
                        dFecha = datosTarjeta.getString("datoFechaControl");

                } catch (Exception e) {
                        // TODO: handle exceptions
                }
                try {
                        Bundle Controlador_Multa = getIntent().getExtras();
                        cUsuario = Controlador_Multa.getString("datoUsuario");
                        cNumZona = Controlador_Multa.getString("datoNombreZona");
                        cIdSubcalle = Controlador_Multa.getString("datoIdSubCalle");
                        cNunEspacio = Controlador_Multa.getInt("datoNumeroespacio");
                        cPlaca = Controlador_Multa.getString("datoplaca");
                        cColor = Controlador_Multa.getString("datocolor");
                        cMarca = Controlador_Multa.getString("datomarca");
                        cHoraControl = Controlador_Multa.getString("datohoraControl");
                        cFecha = Controlador_Multa.getString("datofechacontrol");
                        cControlador = Controlador_Multa.getString("Controlador");
                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {
                        Bundle multaAusenciaTarjetaRecarga = getIntent().getExtras();
                        rMultaSistTarjeta = multaAusenciaTarjetaRecarga
                                        .getString("datoMultaSistRecarga");
                        rNombreControlador = multaAusenciaTarjetaRecarga
                                        .getString("datoNomControladorRecarga");
                        ridMultaAusencia = multaAusenciaTarjetaRecarga
                                        .getInt("datoIdMultaAusenciaRecarga");
                        rNomZona = multaAusenciaTarjetaRecarga
                                        .getString("datoNombreZonaRecarga");
                        rNunEspacio = multaAusenciaTarjetaRecarga
                                        .getInt("datoEspacioRegistroRecarga");
                        rIdSubCalle = multaAusenciaTarjetaRecarga
                                        .getString("datoIdSubCalleRecarga");
                        rPlaca = multaAusenciaTarjetaRecarga.getString("datoPlacaRecarga");
                        rColor = multaAusenciaTarjetaRecarga.getString("datoColorRecarga");
                        rMarca = multaAusenciaTarjetaRecarga.getString("datoMarcaRecarga");
                        rHoraControl = multaAusenciaTarjetaRecarga
                                        .getString("datoHoraControlRecarga");
                        rFecha = multaAusenciaTarjetaRecarga
                                        .getString("datoFechaControlRecarga");
                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {
                        Bundle multaPorTiempo = getIntent().getExtras();
                        espacioTipoTiempo = multaPorTiempo.getInt("espacio");
                        registroTipoMulta = multaPorTiempo.getString("tipoRe");
                        multaTipoMulta = multaPorTiempo.getString("multaT");
                        tipoMultaTiempo = multaPorTiempo.getString("TipoMultaTiempo");
                        //Toast.makeText(getBaseContext(), "-"+espacioTipoTiempo+
                        //"-"+registroTipoMulta+"-"+multaTipoMulta+"-"+tipoMultaTiempo,Toast.LENGTH_LONG).show();
                } catch (Exception e) {
                        // TODO: handle exception
                }
                ausenciaTarjeta = (CheckBox) findViewById(R.id.cbeAsenciaTarjeta);
                ausenciaTarjeta.setOnClickListener(this);
                MalUsoTarjeta = (CheckBox) findViewById(R.id.cbeMalUsoTarjeta);
                MalUsoTarjeta.setOnClickListener(this);

                // prueba=(TextView) findViewById(R.id.txttipomultas);
                // mu=this;

                //GestorBaseDatos consultaTipoMulta = new GestorBaseDatos(RegistroMulta.this);
                //consultaTipoMulta.abrirBaseDatos();
                //String descripcionTMMalUso;
                //String descripcionTMAusencia;
                //long tipo6 = 6;
                //descripcionTMMalUso = consultaTipoMulta.obtenerTipoMulata(tipo6);
                MalUsoTarjeta.setText("Uso indebido de tarjeta");
                //long tipo7 = 7;
                //descripcionTMAusencia = consultaTipoMulta.obtenerTipoMulata(tipo7);
                ausenciaTarjeta.setText("Ausencia de tarjeta");
                //consultaTipoMulta.close();

                /*
                 * if (cControlador.compareTo("MultaControlador")==0) {
                 * cajaTipoMultas.getBackground
                 * ().setColorFilter(Color.CYAN,PorterDuff.Mode.MULTIPLY);
                 * cajaTipoMultas.setEnabled(false);
                 * cajaTipoMultas.setTypeface(tipofuenteMulta);
                 * cajaMontoMulta.getBackground
                 * ().setColorFilter(Color.CYAN,PorterDuff.Mode.MULTIPLY);
                 * cajaMontoMulta.setEnabled(false); //cajaTipoMultas.setText("");
                 * Toast.makeText(getBaseContext(), "Selecione el tipo de Multa",
                 * Toast.LENGTH_LONG).show(); } else {
                 * //MalUsoTarjeta.setEnabled(false);
                 * //ausenciaTarjeta.setEnabled(false); }
                 */

                try {

                        if (tipoMultaTiempo.compareTo("TipoMultaTiempo") == 0) {
                                ausenciaTarjeta.setEnabled(false);
                                MalUsoTarjeta.setEnabled(false);
                                Toast.makeText(
                                                getApplicationContext(),
                                                " " + espacioTipoTiempo + " " + registroTipoMulta
                                                                + "  " + multaTipoMulta + "x" + tipoMultaTiempo,
                                                Toast.LENGTH_LONG).show();
                                GestorBaseDatos g = new GestorBaseDatos(RegistroMulta.this);
                                g.abrirBaseDatos();
                                int intervalo = Integer.parseInt(multaTipoMulta);
                                Toast.makeText(getApplicationContext(), intervalo + "",
                                                Toast.LENGTH_LONG).show();
                                String montoMulta = g.consultarMonto(intervalo);
                                IDServidor = g.consultarIdServidor(intervalo);
                                String descripcionMulta = g.consultarDescrip(intervalo);
                                g.close();
                                //cajaTipoMultas.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaTipoMultas.setEnabled(false);
                                cajaTipoMultas.setText(descripcionMulta);
                                // cajaTipoMultas.setTypeface(tipofuenteMulta);
                                //cajaMontoMulta.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaMontoMulta.setEnabled(false);
                                cajaMontoMulta.setText(montoMulta);

                        }

                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {

                        // multa de tarjeta por caducidad
                        if (dMultaSistTarjeta.compareTo("multaTarjeta") == 0) {
                                
                                //tomarEvidencia.setEnabled(true);
                                

                                GestorBaseDatos mostrar = new GestorBaseDatos(RegistroMulta.this);
                                mostrar.abrirBaseDatos();
                                // int x=0;
                                // x=Integer.parseInt(idMultaCaducidad);
                                String ID = "";
                                long IdMulta;
                                long prueba;
                                String razon = "Uso indebido de tarjeta";
                                //prueba=Long.parseLong(razon);
                                ID = mostrar.traerIdMulta(razon);
                                Toast.makeText(getBaseContext(),
                                                ID + "entro a multa por caducidad", Toast.LENGTH_LONG)
                                                .show();
                                
                                IdMulta = Long.parseLong(ID);
                                razonMultaCaducidad = mostrar
                                                .obtenerRazonTipoMultaCaducidad(idMultaCaducidad);
                                //prueba.getBackground().setColorFilter(Color.YELLOW,PorterDuff.Mode.MULTIPLY);
                                mostrar.close();
                                cajaTipoMultas.setText("Uso Indebido de Tarjeta");
                                //cajaTipoMultas.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);

                                ausenciaTarjeta.setEnabled(false);
                                MalUsoTarjeta.setEnabled(false);
                                GestorBaseDatos mostrar2 = new GestorBaseDatos(RegistroMulta.this);
                                mostrar2.abrirBaseDatos();
                                montoMultaCaducidad = mostrar2
                                                .obtenerValorTipoMultaCaducidad(IdMulta);
                                mostrar2.close();
                                //cajaTipoMultas.setEnabled(false);
                                //Toast.makeText(getBaseContext(), montoMultaCaducidad + "entro",
                                //              Toast.LENGTH_LONG).show();
                                cajaMontoMulta.setText(montoMultaCaducidad);
                                cajaTipoMultas.setTypeface(tipofuenteMulta);
                                cajaMontoMulta.getBackground().setColorFilter(Color.CYAN,
                                                PorterDuff.Mode.MULTIPLY);
                                cajaMontoMulta.setEnabled(false);

                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {
                        if (cControlador.compareTo("MultaControlador") == 0) {
                                //cajaTipoMultas.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaTipoMultas.setEnabled(false);
                                // cajaTipoMultas.setTypeface(tipofuenteMulta);
                                //cajaMontoMulta.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaMontoMulta.setEnabled(false);
                                // cajaTipoMultas.setText("");
                                Toast.makeText(getBaseContext(), "Selecione el tipo de Multa",
                                                Toast.LENGTH_LONG).show();
                        } else {
                                // MalUsoTarjeta.setEnabled(false);
                                // ausenciaTarjeta.setEnabled(false);
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
                // MULTA AUSENCIA DE TARJETA
                try {
                        if (rMultaSistTarjeta.compareTo("multaTarjetaRecarga") == 0) {
                                GestorBaseDatos mostrar = new GestorBaseDatos(RegistroMulta.this);
                                mostrar.abrirBaseDatos();
                                // int x=0;
                                // x=Integer.parseInt(idMultaCaducidad);
                                String ID = "";
                                long IdMulta;
                                long prueba;
                                String razon = "Ausencia de tarjeta";
                                // prueba=Long.parseLong(razon);
                                ID = mostrar.traerIdMulta(razon);
                                Toast.makeText(getBaseContext(), ID + "entro",
                                                Toast.LENGTH_LONG).show();
                                mostrar.close();
                                IdMulta = Long.parseLong(ID);
                                // razonMultaCaducidad=mostrar.obtenerRazonTipoMultaCaducidad(idMultaCaducidad);
                                // prueba.getBackground().setColorFilter(Color.YELLOW,PorterDuff.Mode.MULTIPLY);
                                cajaTipoMultas.setText("Ausencia de tarjeta");
                                //cajaTipoMultas.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                ausenciaTarjeta.setEnabled(false);
                                MalUsoTarjeta.setEnabled(false);
                                GestorBaseDatos mostrar2 = new GestorBaseDatos(RegistroMulta.this);
                                mostrar2.abrirBaseDatos();
                                montoMultaCaducidad = mostrar2
                                                .obtenerValorTipoMultaCaducidad(IdMulta);
                                mostrar2.close();
                                //cajaTipoMultas.setEnabled(false);
                                Toast.makeText(getBaseContext(), montoMultaCaducidad + "entro",
                                                Toast.LENGTH_LONG).show();
                                cajaMontoMulta.setText(montoMultaCaducidad);
                                cajaTipoMultas.setTypeface(tipofuenteMulta);
                                //cajaMontoMulta.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaMontoMulta.setEnabled(false);
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
                try {
                        if (disMultaSistDiscapacitado.compareTo("multaTarjetaDiscapacitado") == 0) {
                                GestorBaseDatos mostrar = new GestorBaseDatos(RegistroMulta.this);
                                mostrar.abrirBaseDatos();
                                // int x=0;
                                // x=Integer.parseInt(idMultaCaducidad);
                                String ID = "";
                                long IdMulta;
                                long prueba;
                                String razon = "Ausencia de tarjeta";
                                // prueba=Long.parseLong(razon);
                                ID = mostrar.traerIdMulta(razon);
                                Toast.makeText(getBaseContext(), ID + "entro",
                                                Toast.LENGTH_LONG).show();
                                mostrar.close();
                                IdMulta = Long.parseLong(ID);
                                // razonMultaCaducidad=mostrar.obtenerRazonTipoMultaCaducidad(idMultaCaducidad);
                                // prueba.getBackground().setColorFilter(Color.YELLOW,PorterDuff.Mode.MULTIPLY);
                                cajaTipoMultas.setText("Ausencia de tarjeta");
                                //cajaTipoMultas.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                ausenciaTarjeta.setEnabled(false);
                                MalUsoTarjeta.setEnabled(false);
                                GestorBaseDatos mostrar2 = new GestorBaseDatos(RegistroMulta.this);
                                mostrar2.abrirBaseDatos();
                                montoMultaCaducidad = mostrar2
                                                .obtenerValorTipoMultaCaducidad(IdMulta);
                                mostrar2.close();
                                //cajaTipoMultas.setEnabled(false);
                                Toast.makeText(getBaseContext(), montoMultaCaducidad + "entro",
                                                Toast.LENGTH_LONG).show();
                                cajaMontoMulta.setText(montoMultaCaducidad);
                                cajaTipoMultas.setTypeface(tipofuenteMulta);
                                //cajaMontoMulta.getBackground().setColorFilter(Color.CYAN,
                                //              PorterDuff.Mode.MULTIPLY);
                                //cajaMontoMulta.setEnabled(false);
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
                
                Button botonGuardar = (Button) findViewById(R.id.btnSalirHorario);
                botonGuardar.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View view) {
                                confirmacionInformacionEnvioMulta();
                                
                                // enviarMulta();
                        }
                });

                Button botonCancelar = (Button) findViewById(R.id.btnCancelarInfo);
                botonCancelar.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View view) {
                                cancelar();
                        }
                });

        }

        GestorBaseDatos miBBDDHelper;

        private void guardarMultaControlador() {

                if (comprobarGuardarValido()) {
                        // El formulario es valido, por lo tanto podemos guardar
                        boolean bienHecho = false;
                        try {
                                codigoMulta = cajaCodigoMulta.getText().toString();
                                descripcionMulta = cajaTipoMultas.getText().toString();
                                NumCliente = cajaNumCliente.getText().toString();
                                montoMulta = cajaMontoMulta.getText().toString();

                                crearBBDD();
                                // Abrimos una conexion
                                

                                int IdMultaControlador;
                                miBBDDHelper.abrirBaseDatos();

                                idMultaM = miBBDDHelper.traerIdMulta(descripcionMulta);
                                // IdMultaControlador = Integer.parseInt(idMultaM);
/*
                                bienHecho = miBBDDHelper.InsertRegistroMultas(cUsuario,
                                                cNumZona, cIdSubcalle, cNunEspacio, cPlaca,
                                                cHoraControl, cFecha, codigoMulta, NumCliente,
                                                descripcionMulta, idMultaM, montoMulta, estadoEnvio,
                                                cColor, cMarca);
                                Toast.makeText(getBaseContext(),
                                                "Los datos se han guardado satisfactoriamente",
                                                Toast.LENGTH_LONG).show();*/
                                // Cerramos la conexion
                                miBBDDHelper.close();
                                // menutiposRegistros();
                                // finish();
                                //enviarMulta(cUsuario, cNumZona, cIdSubcalle, cFecha,
                                //              cHoraControl, cPlaca, codigoMulta, NumCliente, idMultaM);
                                try {

                                        String valor = "";
                                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                                        valor = comunicacion.registroMultasSistTarjeta(cUsuario,
                                                        cNumZona, cIdSubcalle, cFecha, cHoraControl, cPlaca, codigoMulta,
                                                        NumCliente, idMultaM);
                                        if (valor.compareToIgnoreCase("e") == 0) {
                                                mostrarMensaje("Algo ha ido mal en la comunicación. Los datos se guardaron localmente para su posterior sicronización");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(cUsuario,
                                                                cNumZona, cIdSubcalle, cNunEspacio, cPlaca,
                                                                cHoraControl, cFecha, codigoMulta, NumCliente,
                                                                descripcionMulta, idMultaM, montoMulta, "0",
                                                                cColor, cMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("1") == 0) {
                                                mostrarMensaje("Los datos se enviaron correctamente ");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(cUsuario,
                                                                cNumZona, cIdSubcalle, cNunEspacio, cPlaca,
                                                                cHoraControl, cFecha, codigoMulta, NumCliente,
                                                                descripcionMulta, idMultaM, montoMulta, "0",
                                                                cColor, cMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("0") == 0) {
                                                mostrarMensaje("Revisar Código de Multa");
                                                menuCodigoIncorrecto(codigoMulta);
                                                //aumentar resaltacion
                                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                                
                                        }
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }
                                
                                codigoMulta = "";
                                descripcionMulta = "";
                                NumCliente = "";
                                montoMulta = "";
                        } catch (Exception ex) {
                                // Algo ha ido mal, capturamos la excepcion
                                bienHecho = false;
                        }
                        if (!bienHecho)
                                mostrarMensaje("Los datos no se han guardado.");
                } else {
                        // El formulario no es valido, no podemos guardar, mostramos un
                        // mensaje al usuario
                        mostrarMensaje("Rellena todos los campos antes de guardar.");
                }

        }

        private void guardarMultasSistMulta() {

                if (comprobarGuardarValido()) {
                        // El formulario es valido, por lo tanto podemos guardar
                        boolean bienHecho = false;
                        try {
                                codigoMulta = cajaCodigoMulta.getText().toString();
                                descripcionMulta = cajaTipoMultas.getText().toString();
                                NumCliente = cajaNumCliente.getText().toString();
                                montoMulta = cajaMontoMulta.getText().toString();
                                
                                crearBBDD();
                                // Abrimos una conexion
                                
                                String razon = "Uso indebido de tarjeta";
                                miBBDDHelper.abrirBaseDatos();
                                idMultaM = miBBDDHelper.traerIdMulta(razon);
                                //bienHecho = miBBDDHelper.InsertRegistroMultas(
                                //              dNombreControlador, dNomZona, dIdSubCalle, dNunEspacio,
                                //              dPlaca, dHoraControl, dFecha, codigoMulta, NumCliente,
                                //              razon, idMultaM, montoMulta, estadoEnvio, dColor,
                                //              dMarca);
                                miBBDDHelper.close();
                                /*
                                Toast.makeText(getBaseContext(),
                                                "Los datos se han guardado satisfactoriamente",
                                                Toast.LENGTH_LONG).show();
                                enviarMulta(dNombreControlador, dNomZona, dIdSubCalle, dFecha,
                                                dHoraControl, dPlaca, codigoMulta, NumCliente, idMultaM);
                                codigoMulta = "";
                                descripcionMulta = "";
                                NumCliente = "";
                                montoMulta = "";*/
                                // Cerramos la conexion

                                // menutiposRegistros();
                                // finish();
                                try {

                                        String valor = "";
                                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                                        valor = comunicacion.registroMultasSistTarjeta(dNombreControlador, dNomZona, dIdSubCalle, dFecha,
                                                        dHoraControl, dPlaca, codigoMulta, NumCliente, idMultaM);
                                        if (valor.compareToIgnoreCase("e") == 0) {
                                                mostrarMensaje("Algo ha ido mal en la comunicación. Los datos se guardaron localmente para su posterior sicronización");
                                                miBBDDHelper.abrirBaseDatos();
                                                
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                dNombreControlador, dNomZona, dIdSubCalle, dNunEspacio,
                                                                dPlaca, dHoraControl, dFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, "0", dColor,
                                                                dMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("1") == 0) {
                                                mostrarMensaje("Los datos se enviaron correctamente");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                dNombreControlador, dNomZona, dIdSubCalle, dNunEspacio,
                                                                dPlaca, dHoraControl, dFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, estadoEnvio, dColor,
                                                                dMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("0") == 0) {
                                                mostrarMensaje("Revisar Código de Multa");
                                                menuCodigoIncorrecto(codigoMulta);
                                                //aumentar resaltacion
                                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                                
                                        }
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }

                        } catch (Exception ex) {
                                // Algo ha ido mal, capturamos la excepcion
                                bienHecho = false;
                        }

                        if (!bienHecho)
                                mostrarMensaje("Los datos no se han guardado.");
                } else {
                        // El formulario no es valido, no podemos guardar, mostramos un
                        // mensaje al usuario
                        mostrarMensaje("Rellena todos los campos antes de guardar.");
                }
        }

        private void guardarMultasSistAusenciaTarjeta() {

                if (comprobarGuardarValido()) {
                        // El formulario es valido, por lo tanto podemos guardar
                        boolean bienHecho = false;
                        try {
                                codigoMulta = cajaCodigoMulta.getText().toString();
                                descripcionMulta = cajaTipoMultas.getText().toString();
                                NumCliente = cajaNumCliente.getText().toString();
                                montoMulta = cajaMontoMulta.getText().toString();

                                //Toast.makeText(getBaseContext(), montoMulta + "guardado",
                                //              Toast.LENGTH_LONG).show();
                                crearBBDD();
                                // Abrimos una conexion
                                String estadoEnvio = "";
                                String razon = "Ausencia de tarjeta";
                                miBBDDHelper.abrirBaseDatos();
                                idMultaM = miBBDDHelper.traerIdMulta(razon);
                                //bienHecho = miBBDDHelper.InsertRegistroMultas(
                                //              rNombreControlador, rNomZona, rIdSubCalle, rNunEspacio,
                                //              rPlaca, rHoraControl, rFecha, codigoMulta, NumCliente,
                                //              razon, idMultaM, montoMulta, estadoEnvio, rColor,
                                //              rMarca);
                                miBBDDHelper.close();
                                //Toast.makeText(getBaseContext(),
                                //              "Los datos se han guardado satisfactoriamente",
                                //              Toast.LENGTH_LONG).show();

                                // Cerramos la conexion

                                // menutiposRegistros();
                                // finish();
                                //enviarMulta(rNombreControlador, rNomZona, rIdSubCalle, rFecha,
                                //              rHoraControl, rPlaca, codigoMulta, NumCliente, idMultaM);
                                try {

                                        String valor = "";
                                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                                        valor = comunicacion.registroMultasSistTarjeta(rNombreControlador, rNomZona, rIdSubCalle, rFecha,
                                                        rHoraControl, rPlaca, codigoMulta, NumCliente, idMultaM);
                                        if (valor.compareToIgnoreCase("e") == 0) {
                                                mostrarMensaje("Algo ha ido mal en la comunicación. Los datos se guardaron localmente para su posterior sicronización");
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                rNombreControlador, rNomZona, rIdSubCalle, rNunEspacio,
                                                                rPlaca, rHoraControl, rFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, "0", rColor,
                                                                rMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("1") == 0) {
                                                mostrarMensaje("Los datos se enviaron correctamente ");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                rNombreControlador, rNomZona, rIdSubCalle, rNunEspacio,
                                                                rPlaca, rHoraControl, rFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, estadoEnvio, rColor,
                                                                rMarca);
                                                miBBDDHelper.close();
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("0") == 0) {
                                                mostrarMensaje("Revisar Código de Multa");
                                                menuCodigoIncorrecto(codigoMulta);
                                                //aumentar resaltacion
                                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                                
                                        }
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }

                        } catch (Exception ex) {
                                // Algo ha ido mal, capturamos la excepcion
                                bienHecho = false;
                        }

                        
                        codigoMulta = "";
                        descripcionMulta = "";
                        NumCliente = "";
                        montoMulta = "";
                        if (!bienHecho)
                                mostrarMensaje("Los datos no se han guardado.");
                } else {
                        // El formulario no es valido, no podemos guardar, mostramos un
                        // mensaje al usuario
                        mostrarMensaje("Rellena todos los campos antes de guardar.");
                }
        }

        private void guardarMultasSistTiempo() {

                if (comprobarGuardarValido()) {
                        // El formulario es valido, por lo tanto podemos guardar
                        boolean bienHecho = false;
                        String nomControlador = "";
                        String nomZona = "";
                        String idSub = "";
                        String placa = "";
                        String horaMulta = "";
                        String fecha = "";
                        String color = "";
                        try {
                                codigoMulta = cajaCodigoMulta.getText().toString();
                                descripcionMulta = cajaTipoMultas.getText().toString();
                                NumCliente = cajaNumCliente.getText().toString();
                                montoMulta = cajaMontoMulta.getText().toString();
                                String marca;

                                crearBBDD();
                                // Abrimos una conexion
                                
                                miBBDDHelper.abrirBaseDatos();

                                nomControlador = miBBDDHelper
                                                .obtenernombreControlador(espacioTipoTiempo);

                                nomZona = miBBDDHelper.obtenernombreZona(espacioTipoTiempo);

                                idSub = miBBDDHelper.obtenerIdSub(espacioTipoTiempo);

                                placa = miBBDDHelper.obtenerPlaca(espacioTipoTiempo);

                                //horaControl = miBBDDHelper
                                        //      .obtenerHoraControl(espacioTipoTiempo);
                                Calendar c = Calendar.getInstance();
                                horaMulta= c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE);
                                
                                fecha = miBBDDHelper.obtenerfecha(espacioTipoTiempo);

                                color = miBBDDHelper.obtenercolor(espacioTipoTiempo);

                                marca = miBBDDHelper.obtenermarca(espacioTipoTiempo);
                                 //miBBDDHelper.close();
                                 miBBDDHelper.abrirBaseDatos();
                                
                                //Toast.makeText(
                                //              getApplicationContext(),
                                //              nomControlador + nomZona + idSub + placa + horaMulta
                                //                              + fecha + color + marca, Toast.LENGTH_LONG)
                                //              .show();
                                
                                idMultaM=miBBDDHelper.traerIdMulta(descripcionMulta);
                                //bienHecho = miBBDDHelper.InsertRegistroMultas(nomControlador,
                                //              nomZona, idSub, espacioTipoTiempo, placa, horaMulta,
                                //              fecha, codigoMulta, NumCliente, descripcionMulta,
                                //              IDServidor, montoMulta, estadoEnvio, color, marca);
                                miBBDDHelper.close();
                                //Toast.makeText(getBaseContext(),
                                //              "Los datos se han guardado satisfactoriamente",
                                //              Toast.LENGTH_LONG).show();

                                // Cerramos la conexion

                                // menutiposRegistros();
                                // finish();
                                try {

                                        String valor = "";
                                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                                        valor = comunicacion.registroMultasSistTarjeta(nomControlador, nomZona, idSub, fecha, horaMulta,
                                                        placa, codigoMulta, NumCliente, IDServidor);
                                        if (valor.compareToIgnoreCase("e") == 0) {
                                                mostrarMensaje("Algo ha ido mal en la comunicación. Los datos se guardaron localmente para su posterior sicronización");
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(nomControlador,
                                                                nomZona, idSub, espacioTipoTiempo, placa, horaMulta,
                                                                fecha, codigoMulta, NumCliente, descripcionMulta,
                                                                IDServidor, montoMulta, "0", color, marca);
                                                miBBDDHelper.close();
                                                try {
                                                        GestorBaseDatos manejador = new GestorBaseDatos(
                                                                        RegistroMulta.this);
                                                        manejador.abrirBaseDatos();
                                                        manejador.eliminarRegistroTarjeta(espacioTipoTiempo);
                                                        manejador.close();
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                Zona.detenerServicioDetalleVehiculo(espacioTipoTiempo);
                                                
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("1") == 0) {
                                                mostrarMensaje("Los datos se enviaron correctamente");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(nomControlador,
                                                                nomZona, idSub, espacioTipoTiempo, placa, horaMulta,
                                                                fecha, codigoMulta, NumCliente, descripcionMulta,
                                                                IDServidor, montoMulta, estadoEnvio, color, marca);
                                                miBBDDHelper.close();
                                                try {
                                                        GestorBaseDatos manejador = new GestorBaseDatos(
                                                                        RegistroMulta.this);
                                                        manejador.abrirBaseDatos();
                                                        manejador.eliminarRegistroTarjeta(espacioTipoTiempo);
                                                        manejador.close();
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                Zona.detenerServicioDetalleVehiculo(espacioTipoTiempo);
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("0") == 0) {
                                                mostrarMensaje("Revisar Código de Multa");
                                                menuCodigoIncorrecto(codigoMulta);
                                                //aumentar resaltacion
                                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                                
                                        }
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }

                        } catch (Exception ex) {
                                // Algo ha ido mal, capturamos la excepcion
                                bienHecho = false;
                        }
                        //enviarMulta(nomControlador, nomZona, idSub, fecha, horaMulta,
                        //              placa, codigoMulta, NumCliente, IDServidor);
                
                

                        
                        if (!bienHecho)
                                mostrarMensaje("Los datos no se han guardado.");
                } else {
                        // El formulario no es valido, no podemos guardar, mostramos un
                        // mensaje al usuario
                        mostrarMensaje("Rellena todos los campos antes de guardar.");
                }
        }

        public void crearBBDD() {
                miBBDDHelper = new GestorBaseDatos(this);
                try {
                        miBBDDHelper.crearDataBase();
                } catch (IOException ioe) {
                        throw new Error("Unable to create database");
                }
        }

        private void cancelar() {
                // Cerramos la vista actual, por lo que Android mostrara la anterior,
                // sin hacer nada mas.
                this.finish();
        }

        private boolean comprobarGuardarValido() {
                Boolean guardarEsValido = false; // empezamos suponiendo que es falso

                // Comprobamos las cajas existen
                if (cajaCodigoMulta != null) {
                        // Comprobamos que el usuario ha escrito algo en ambas
                        if (cajaCodigoMulta.getText() != null
                                        && !cajaCodigoMulta.getText().toString().equals("")) {
                                // Titulo tiene algo, comprobamos tambien Autor
                                guardarEsValido = true;
                        }

                }

                return guardarEsValido;

        }

        private void mostrarMensaje(String mensaje) {
                Toast.makeText(this, mensaje, 5000).show();
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.activity_multas, menu);
                return true;

        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                // TODO Auto-generated method stub

                switch (item.getItemId()) {

                case R.id.menu_Foto:
                        //protected Uri imageUri;
                        codigo = cajaCodigoMulta.getText().toString();
                        if (codigo.compareTo("") != 0) {
                                String state = Environment.getExternalStorageState();
                    if (Environment.MEDIA_MOUNTED.equals(state)) 
                    {                                   
                        long captureTime = System.currentTimeMillis();                                  
                        //photoPath = Environment.getExternalStorageDirectory() + "/DCIM/Camera/multas/Point" + captureTime+codigo + ".jpg";
                        photoPath = Environment.getExternalStorageDirectory() + "/DCIM/Camera/" +codigo + ".jpg";
                        try
                        {
                            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                            File photo = new File(photoPath);
                            intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photo));                           
                            startActivityForResult(Intent.createChooser(intent, "Capture Image"), REQUEST_CAMERA);
                            //Toast.makeText(getBaseContext(),
                                                //              "Guardado"+photoPath,
                                                //              Toast.LENGTH_LONG).show();
                        } 
                        catch (Exception e) 
                        {
                            Toast.makeText(getApplicationContext(),       "Error",                    Toast.LENGTH_LONG).show();
                            Log.e(e.getClass().getName(), e.getMessage(), e);
                        }
                    }
                                /*
                                 * private String photoPath="";
                                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                                int code = TAKE_PICTURE;
                                Uri output = Uri.fromFile(new File(name));
                                photoPath = Environment.getExternalStorageDirectory() 
                             + "/DCIM/Camera/Point" + captureTime + ".jpg";
                                intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
                                startActivityForResult(intent, code);*/
                        } else {
                                Toast.makeText(getApplicationContext(),
                                                "Selecione por favor el código de Recarga",
                                                Toast.LENGTH_LONG).show();
                        }
                        
                        break;
                

                }
                return super.onOptionsItemSelected(item);

        }

        @Override
        public void onClick(View v) {
                // TODO Auto-generated method stub
                //switch (v.getId()) {
                //case R.id.btnTomarFoto:
                        
                //      break;
                //}
                if (ausenciaTarjeta.isChecked() == true) {
                        //menutiposRegistrosHorizontal();
                        MalUsoTarjeta.setEnabled(false);
                        idMulta = 6;
                        String razon2 = "Ausencia de tarjeta";
                        cajaTipoMultas.setText(razon2);
                        try {
                                GestorBaseDatos consulta = new GestorBaseDatos(RegistroMulta.this);
                                String monto;
                                consulta.abrirBaseDatos();
                                monto = consulta.traerValorMonto(razon2);
                                cajaMontoMulta.setText(monto);
                                consulta.close();
                        } catch (Exception e) {
                                // TODO: handle exception
                        }

                }
                if (MalUsoTarjeta.isChecked() == true) {
                        ausenciaTarjeta.setEnabled(false);
                        try {
                                GestorBaseDatos consulta = new GestorBaseDatos(RegistroMulta.this);
                                String razon = "Uso indebido de tarjeta";
                                cajaTipoMultas.setText(razon);
                                String monto;
                                consulta.abrirBaseDatos();
                                monto = consulta.traerValorMonto(razon);
                                cajaMontoMulta.setText(monto);
                                consulta.close();
                        } catch (Exception e) {
                                // TODO: handle exception
                        }
                }
                if (ausenciaTarjeta.isChecked() == false
                                && MalUsoTarjeta.isChecked() == false) {
                        idMulta = 7;
                        MalUsoTarjeta.setEnabled(true);
                        ausenciaTarjeta.setEnabled(true);
                        cajaTipoMultas.setText("");
                        cajaMontoMulta.setText("");
                }
        }

        // @Override
        // protected void onActivityResult(int requestCode, int resultCode, Intent
        // data) {
        // super.onActivityResult(requestCode, resultCode, data);
        // if (resultCode == RESULT_OK) {
        // Bundle extras = data.getExtras();
        // bmp = (Bitmap) extras.get("data");
        // evidencia.setImageBitmap(bmp);
        // }
        // }

        /*public void enviarMulta(String infousuario, String infoNombreZona,
                        String infoIdSubCalle, String fecha, String hora, String placa,
                        String codigo, String nombreCliente, String idServidor) {
                try {

                        String valor = "";
                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                        valor = comunicacion.registroMultasSistTarjeta(infousuario,
                                        infoNombreZona, infoIdSubCalle, fecha, hora, placa, codigo,
                                        nombreCliente, idServidor);
                        if (valor.compareToIgnoreCase("e") == 0) {
                                mostrarMensaje("Algo ha ido mal, en la comunicacion.");
                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                startActivity(aZonas);
                        }
                        if (valor.compareToIgnoreCase("1") == 0) {
                                mostrarMensaje("Los datos se Eviar Corectamente Corectamente ");
                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                startActivity(aZonas);
                        }
                        if (valor.compareToIgnoreCase("0") == 0) {
                                mostrarMensaje("Revisar Codigo Multa");
                                menuCodigoIncorrecto();
                                //aumentar resaltacion
                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
        }*/
        private void menuCodigoIncorrecto(String codigoMulta2) {
                AlertDialog selecRegistro = new AlertDialog.Builder(
                                RegistroMulta.this).create();
                selecRegistro.setTitle("Código Incorrecto");
                selecRegistro.setMessage
                ("Ya existe una multa con el código ingresado "+codigoMulta2+". Revise e intente de nuevo");
                selecRegistro.setButton("Aceptar",
                                new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int id) {
                                                dialog.cancel();
                                        }
                                });

                selecRegistro.show();
        }
        private void guardarMultasSistDiscapacitado() {

                if (comprobarGuardarValido()) {
                        // El formulario es valido, por lo tanto podemos guardar
                        boolean bienHecho = false;
                        try {
                                codigoMulta = cajaCodigoMulta.getText().toString();
                                descripcionMulta = cajaTipoMultas.getText().toString();
                                NumCliente = cajaNumCliente.getText().toString();
                                montoMulta = cajaMontoMulta.getText().toString();

                                //Toast.makeText(getBaseContext(), montoMulta + "guardado",
                                //              Toast.LENGTH_LONG).show();
                                crearBBDD();
                                // Abrimos una conexion
                                
                                String razon = "Ausencia de tarjeta";
                                miBBDDHelper.abrirBaseDatos();
                                idMultaM = miBBDDHelper.traerIdMulta(razon);
                                //bienHecho = miBBDDHelper.InsertRegistroMultas(
                                //              disNombreControlador, disNomZona, disIdSubCalle, disNunEspacio,
                                //              disPlaca, rHoraControl, disFecha, codigoMulta, NumCliente,
                                //              razon, idMultaM, montoMulta, estadoEnvio, disColor,
                                //              disMarca);
                                miBBDDHelper.close();
                                //Toast.makeText(getBaseContext(),
                                //              "Los datos se han guardado satisfactoriamente",
                                //              Toast.LENGTH_LONG).show();

                                // Cerramos la conexion

                                // menutiposRegistros();
                                // finish();
                                try {

                                        String valor = "";
                                        ComunicacionTCP comunicacion = new ComunicacionTCP();
                                        valor = comunicacion.registroMultasSistTarjeta(disNombreControlador, disNomZona, disIdSubCalle, disFecha,
                                                        disHoraControl, disPlaca, codigoMulta, NumCliente, idMultaM);
                                        if (valor.compareToIgnoreCase("e") == 0) {
                                                mostrarMensaje("Algo ha ido mal, en la comunicación. Los datos se guardaron localmente para su posterior sicronización");
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                disNombreControlador, disNomZona, disIdSubCalle, disNunEspacio,
                                                                disPlaca, rHoraControl, disFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, "0", disColor,
                                                                disMarca);
                                                miBBDDHelper.close();
                                                try {
                                                        GestorBaseDatos manejador = new GestorBaseDatos(
                                                                        RegistroMulta.this);
                                                        manejador.abrirBaseDatos();
                                                        manejador.eliminarRegistroTarjeta(espacioTipoTiempo);
                                                        manejador.close();
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                Zona.detenerServicioDetalleVehiculo(espacioTipoTiempo);
                                                
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("1") == 0) {
                                                mostrarMensaje("Los datos se enviaron correctamente");
                                                miBBDDHelper.abrirBaseDatos();
                                                bienHecho = miBBDDHelper.InsertRegistroMultas(
                                                                disNombreControlador, disNomZona, disIdSubCalle, disNunEspacio,
                                                                disPlaca, rHoraControl, disFecha, codigoMulta, NumCliente,
                                                                razon, idMultaM, montoMulta, estadoEnvio, disColor,
                                                                disMarca);
                                                try {
                                                        GestorBaseDatos manejador = new GestorBaseDatos(
                                                                        RegistroMulta.this);
                                                        manejador.abrirBaseDatos();
                                                        manejador.eliminarRegistroTarjeta(espacioTipoTiempo);
                                                        manejador.close();
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                Zona.detenerServicioDetalleVehiculo(espacioTipoTiempo);
                                                Intent aZonas = new Intent(RegistroMulta.this, ZonasControl.class);
                                                startActivity(aZonas);
                                        }
                                        if (valor.compareToIgnoreCase("0") == 0) {
                                                mostrarMensaje("Revisar Código de Multa");
                                                menuCodigoIncorrecto(codigoMulta);
                                                //aumentar resaltacion
                                                cajaCodigoMulta.getBackground().setColorFilter(R.drawable.caja_error, PorterDuff.Mode.MULTIPLY);
                                                
                                        }
                                } catch (Exception e) {
                                        // TODO: handle exception
                                }

                        } catch (Exception ex) {
                                // Algo ha ido mal, capturamos la excepcion
                                bienHecho = false;
                        }

                        //enviarMulta(disNombreControlador, disNomZona, disIdSubCalle, disFecha,
                        //              disHoraControl, disPlaca, codigoMulta, NumCliente, idMultaM);
                        codigoMulta = "";
                        descripcionMulta = "";
                        NumCliente = "";
                        montoMulta = "";
                        if (!bienHecho)
                                mostrarMensaje("Los datos no se han guardado.");
                } else {
                        // El formulario no es valido, no podemos guardar, mostramos un
                        // mensaje al usuario
                        mostrarMensaje("Rellena todos los campos antes de guardar.");
                }
        }
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == 0) {
                        if (resultCode == RESULT_OK) {
                                String contenido = data.getStringExtra("SCAN_RESULT");
                                String formato = data.getStringExtra("SCAN_RESULT_FORMAT");
                                // Hacer algo con los datos obtenidos.
                                Toast.makeText(getApplicationContext(), contenido + formato,
                                                Toast.LENGTH_LONG).show();
                                cajaCodigoMulta.setText(contenido);
                                cajaCodigoMulta.setEnabled(false);
                                //

                                if (data != null) {
                                        /**
                                         * En el caso de una vista previa, obtenemos el extra data
                                         * del intent y lo mostramos en el ImageView
                                         */
                                        if (data.hasExtra("data")) {
                                                
                                                //ImageView iv = (ImageView) findViewById(R.id.imvFoto);
                                                //iv.setImageBitmap((Bitmap) data
                                                //              .getParcelableExtra("data"));
                                                //name = Environment.getExternalStorageDirectory()
                                                //              + codigo + ".jpg";
                                                //iv.setImageBitmap(BitmapFactory.decodeFile(name));
                                                /**
                                                 * Para guardar la imagen en la galeria, utilizamos una
                                                 * conexion a un MediaScanner
                                                 */
                                                
                                                if (!photoPath.equals("")&&(photoPath!=null))
                                                {
                                                        
                                                        //oPunto.setPath(photoPath);
                                                        //TODO mensaje de foto seleccionada
                                                        Toast.makeText(getBaseContext(),
                                                                        "Guardado"+photoPath,
                                                                        Toast.LENGTH_LONG).show();
                                                }

                                        }
                                        /**
                                         * De lo contrario es una imagen completa
                                         */
                                }
                                // Bundle extras = data.getExtras();
                                // bmp = (Bitmap) extras.get("data");
                                // evidencia.setImageBitmap(bmp);
                        } else if (resultCode == RESULT_CANCELED) {
                                // Si se cancelo la captura.
                        }
                }

        }
        /*
         * public void enviarMultaTiempos(String infousuario, String infoNombreZona,
         * String infoIdSubCalle, String fecha, String hora, String placa, String
         * codigo, String nombreCliente, String idServidor) { try {
         * 
         * String valor = ""; ComunicacionTCP comunicacion = new ComunicacionTCP();
         * valor = comunicacion.registroMultasSistTarjeta(infousuario,
         * infoNombreZona, infoIdSubCalle, fecha, hora, placa, codigo,
         * nombreCliente, idServidor); if (valor.compareToIgnoreCase("e") == 0) {
         * mostrarMensaje("Algo ha ido mal, en la comunicacion."); Intent aZonas =
         * new Intent(RegistroMulta.this, ZonasControl.class); startActivity(aZonas); } if
         * (valor.compareToIgnoreCase("1") == 0) {
         * mostrarMensaje("Codigo Correcto"); Intent aZonas = new
         * Intent(RegistroMulta.this, ZonasControl.class); startActivity(aZonas); } } catch
         * (Exception e) { // TODO: handle exception } }
         */
        
        private void confirmacionInformacionEnvioMulta() {
                AlertDialog selecRegistro = new AlertDialog.Builder(
                                RegistroMulta.this).create();
                selecRegistro.setTitle("Información");
                selecRegistro.setMessage("Está seguro de continuar: ");

                selecRegistro.setButton("Continuar",
                                new DialogInterface.OnClickListener() {
                                        boolean bienHecho = false;
                                        
                                        @Override
                                        public void onClick(DialogInterface arg0, int arg1) {
                                                try {
                                                        if (dMultaSistTarjeta.compareTo("multaTarjeta") == 0) {
                                                                guardarMultasSistMulta();

                                                        }
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                try {
                                                        if (cControlador.compareTo("MultaControlador") == 0) {

                                                                guardarMultaControlador();
                                                        }
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                try {
                                                        if (rMultaSistTarjeta.compareTo("multaTarjetaRecarga") == 0) {
                                                                guardarMultasSistAusenciaTarjeta();

                                                        }
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                try {
                                                        if (tipoMultaTiempo.compareTo("TipoMultaTiempo") == 0) {
                                                                
                                                                guardarMultasSistTiempo();

                                                        }
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }
                                                try {
                                                        if (disMultaSistDiscapacitado.compareTo("multaTarjetaDiscapacitado") == 0) {

                                                                
                                                                guardarMultasSistDiscapacitado();

                                                        }
                                                } catch (Exception e) {
                                                        // TODO: handle exception
                                                }


                                        }
                                });
                selecRegistro.setButton2("Revisar datos",
                                new DialogInterface.OnClickListener() {
                                        boolean bienHecho = false;

                                        @Override
                                        public void onClick(DialogInterface arg0, int arg1) {
                                                // TODO Auto-generated method stub
                                        }
                                });

                selecRegistro.show();
        }
        
}